Web Development Unit Testing Web2Py অ্যাপ্লিকেশন গাইড ও নোট

226

Web2Py তে Unit Testing একটি গুরুত্বপূর্ণ ফিচার, যা ডেভেলপারদের তাদের অ্যাপ্লিকেশন কোডের কার্যকারিতা পরীক্ষা করতে সহায়তা করে। Unit Testing এর মাধ্যমে আপনি আপনার কোডের প্রত্যেকটি ইউনিট বা ফাংশন পরীক্ষা করতে পারেন, যাতে বাগ বা সমস্যাগুলি আগে থেকেই শনাক্ত করা যায়।

Web2Py তে ইউনিট টেস্টিং করার জন্য unittest মডিউল এবং Web2Py এর built-in test framework ব্যবহৃত হয়। এখানে Web2Py অ্যাপ্লিকেশনের জন্য ইউনিট টেস্টিং করার পদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।


Web2Py তে Unit Testing কনফিগারেশন

Web2Py তে ইউনিট টেস্টিং করার জন্য unittest মডিউল এবং Web2Py এর টেস্টিং ফিচার ব্যবহার করা হয়। Web2Py একটি টেস্টিং ফ্রেমওয়ার্ক সরবরাহ করে যা TestCase ক্লাসের মাধ্যমে ইউনিট টেস্টিংকে সহজ করে তোলে।

১. TestCase ক্লাস ব্যবহার করা

Web2Py তে TestCase ক্লাস ব্যবহার করে আপনি ইউনিট টেস্ট তৈরি করতে পারেন। এই ক্লাসটি unittest মডিউল থেকে আসে এবং আপনি এতে আপনার টেস্ট ফাংশনগুলো সংজ্ঞায়িত করতে পারবেন।

২. TestController তৈরি করা

Web2Py তে ইউনিট টেস্টিং করার জন্য, একটি আলাদা test কন্ট্রোলার তৈরি করতে হয়, যেখানে টেস্ট ফাংশনগুলি থাকবে। এই কন্ট্রোলারে TestCase ক্লাসের ইনস্ট্যান্স ব্যবহার করা হয়।

উদাহরণ:

ধরা যাক, আপনি একটি সিম্পল অ্যাপ্লিকেশন তৈরি করেছেন এবং এতে একটি ফাংশন রয়েছে যেটি দুটি সংখ্যার যোগফল প্রদান করে। এখন আমরা এই ফাংশনটির জন্য ইউনিট টেস্ট লিখব।

controllers/default.py:
def add_numbers(a, b):
    return a + b

এটি একটি সিম্পল ফাংশন যা দুটি সংখ্যার যোগফল রিটার্ন করবে।

controllers/test.py (Unit Test Controller):
import unittest
from gluon import current

class TestAdditionFunction(unittest.TestCase):

    def test_add_numbers(self):
        # Test 1: Positive numbers
        result = current.controller.add_numbers(2, 3)
        self.assertEqual(result, 5)

        # Test 2: Negative numbers
        result = current.controller.add_numbers(-2, -3)
        self.assertEqual(result, -5)

        # Test 3: Zero
        result = current.controller.add_numbers(0, 0)
        self.assertEqual(result, 0)

        # Test 4: Positive and negative number
        result = current.controller.add_numbers(5, -3)
        self.assertEqual(result, 2)

এখানে:

  • unittest.TestCase: এই ক্লাসটি Web2Py তে টেস্টিং ফাংশনগুলি সংজ্ঞায়িত করতে ব্যবহৃত হয়।
  • self.assertEqual(): এটি টেস্ট ফাংশনে প্রাপ্ত ফলাফলটি প্রত্যাশিত ফলাফলের সাথে তুলনা করে, এবং যদি দুইটি ফলাফল সমান না হয়, তবে এটি টেস্ট ফেইল করবে।
টেস্ট ফাংশন ব্যাখ্যা:
  1. test_add_numbers(): এই ফাংশনটি আমাদের add_numbers() ফাংশনটি বিভিন্ন ইনপুট দিয়ে পরীক্ষা করবে, যেমন দুটি পজিটিভ সংখ্যা, দুটি নেগেটিভ সংখ্যা, শূন্য এবং একটি পজিটিভ ও একটি নেগেটিভ সংখ্যা।

৩. Unit Test চালানো

Web2Py তে ইউনিট টেস্ট চালানোর জন্য Web2Py Shell বা Web2Py Web Interface ব্যবহার করা যেতে পারে।

  • Web2Py Shell: আপনি টার্মিনাল থেকে python web2py.py -S your_app_name -M কমান্ডটি চালিয়ে টেস্ট রান করতে পারেন।
  • Web2Py Web Interface: আপনি http://127.0.0.1:8000/your_app_name/test/default/test_addition URL এ গিয়ে আপনার টেস্ট চালাতে পারেন। যদি আপনার টেস্ট সফল হয়, তাহলে এটি সবগুলো টেস্ট পাস করার বার্তা দেখাবে।

৪. Test Results দেখতে

যদি আপনি আপনার টেস্ট কন্ট্রোলারটি Web2Py এর UI থেকে চালান, তবে আপনি প্রতিটি টেস্টের ফলাফল দেখতে পাবেন। যদি কোনো টেস্ট ফেইল করে, তাহলে এটি একটি এরর বার্তা দেখাবে।

৫. Web2Py তে Test Coverage

Web2Py তে Test Coverage এর মাধ্যমে আপনি কোডের কোন অংশটুকু টেস্ট করা হয়েছে তা ট্র্যাক করতে পারেন। এতে করে আপনি দেখতে পারবেন, আপনার অ্যাপ্লিকেশনের কোন ফিচারগুলি যথাযথভাবে টেস্ট করা হয়েছে এবং কোনগুলো টেস্ট করতে বাকি আছে।


সারাংশ

Web2Py তে Unit Testing খুব সহজ এবং কার্যকরী। আপনি unittest মডিউল ব্যবহার করে TestCase ক্লাসের মাধ্যমে টেস্ট ফাংশন তৈরি করতে পারেন। এই টেস্টগুলি ডেভেলপারদের কোডের কার্যকারিতা পরীক্ষা করতে সহায়তা করে এবং বাগ ও ত্রুটি সনাক্ত করতে সাহায্য করে। Web2Py এর টেস্টিং ফিচারগুলি একটি কন্ট্রোলারের মধ্যে সংজ্ঞায়িত ফাংশনগুলো পরীক্ষা করতে সহায়তা করে এবং এটি অ্যাপ্লিকেশন ডেভেলপমেন্টের মধ্যে কোডের নির্ভরযোগ্যতা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion

Are you sure to start over?

Loading...